package org.mat.sample.entity;

import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;

/**

 * 物流调度记录实体（对应 logistics_dispatch 表）

 *

 * 核心字段说明：

 * - dispatchId: 主键（自增）

 * - orderId: 关联订单号（唯一约束）

 * - location: GPS坐标（格式: 纬度,经度）

 * - priorityLevel: 调度优先级（1-5级，数字越大越紧急）

 */
@Data
public class LogisticsDispatch {
    // 数据库主键
    private Long dispatchId;

    // 关联订单号（与参考内容中的派单逻辑对应）
    private String orderId;

    // 物流承运商（顺丰/京东/德邦等）
    private String logisticsCompany;

    // 当前调度状态（参考内容中的调度流程）
    private String currentStatus;

    // 调度优先级（对应参考内容中的 priority calls）
    private Integer priorityLevel = 3;

    // 司机/车辆信息（对应参考内容中的 vehicle dispatching）
    private String driverName;
    private String vehicleNumber;

    // 位置信息（支持 proximity 计算）
    private String pickupLocation;
    private String deliveryLocation;

    // 时间控制字段
    private Date dispatchTime;  // 调度时间
    private Date pickupTime;    // 实际取件时间
    private Date estimatedArrivalTime;

    // 乐观锁版本控制
    private Integer version = 1;

    // 联系方式（对应参考内容中的 two-way radio 通讯）
    private String driverContact;
}